﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Input;

namespace TrenchcoatRobots.Datatypes.Input {
	/// <summary>
	/// An abstract class for Input. These methods will be overloaded with object-specific functions for updating.
	/// </summary>
	public abstract class GameInput {
		public float Value { get; protected set; }
		public string Name { get; protected set; }

		public virtual void Update() {
			return;
		}
		public virtual void Update( ref KeyboardState ks ) {
			return;
		}
		public virtual void Update( ref MouseState ms ) {
			return;
		}
		public virtual void Update( ref GamePadState gps ) {
			return;
		}

		public GameInput(string name) {
			Value = 0;
			Name = name;
		}
	}
}
